Migrate CI to pixi#9276
Conversation
Unit Test ResultsSee test report for an extended history of previous test failures. This is useful for diagnosing flaky tests. 3 files - 28 3 suites - 28 0s ⏱️ - 10h 29m 6s For more details on these failures, see this check. Results for commit cd9bc86. ± Comparison against base commit d3c7b24. This pull request removes 56 and adds 87 tests. Note that renamed tests count towards both.This pull request removes 37 skipped tests and adds 85 skipped tests. Note that renamed tests count towards both.This pull request skips 35 and un-skips 6 tests.♻️ This comment has been updated with latest results. |
27f7752 to
3f62c35
Compare
c9d1e43 to
dac43ed
Compare
| id: run_tests | ||
| shell: bash -l {0} | ||
| env: | ||
| PYTHONFAULTHANDLER: 1 |
There was a problem hiding this comment.
Removed; didn't see a big need for it. I haven't seen segfaults in a very long time.
|
|
||
| s = sparse.COO([x], data) | ||
|
|
||
| s = sparse.COO(x) |
There was a problem hiding this comment.
sparse tests were never running before
| # Optional dependencies | ||
| cytoolz = "=0.11.2" | ||
| lz4 = "=4.3.2" |
There was a problem hiding this comment.
Unlike in dask/dask, there aren't two separate environments mindeps-non-optional vs. mindeps-optional. Adding them is out of scope for this PR and could be considered in a follow-up.
| [feature.optional-problematic.target.linux-64.dependencies] | ||
| crick = "*" # Not available for 3.14, 3.14t, and linux-aarch64 | ||
| memray = "*" # Not available on Windows | ||
| uvloop = "*" # Not available on Windows |
There was a problem hiding this comment.
uvloop is new in CI. Its tests did not run before.
| scipy = "*" | ||
| sparse = "*" | ||
| setproctitle = "*" | ||
| # stacktrace = "*" # FIXME long-forgotten dependency, must investigate |
There was a problem hiding this comment.
There is some functionality around stacktrace with broken and forgotten tests.
This deserves its own follow-up.
| [feature.nightly.dependencies] | ||
| python = "=3.14" | ||
| # See ../dask/continuous_integration/pixi-recipes/README.md | ||
| fsspec = { git = "https://github.com/dask/dask", subdirectory = "continuous_integration/pixi-recipes/fsspec" } | ||
| s3fs = { git = "https://github.com/dask/dask", subdirectory = "continuous_integration/pixi-recipes/s3fs" } | ||
|
|
||
| [feature.nightly.pypi-dependencies] | ||
| numpy = { index = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" } | ||
| pandas = { index = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" } | ||
| pyarrow = { index = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" } | ||
| scipy = { index = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" } | ||
| h5py = { index = "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple" } | ||
| bokeh = { git = "https://github.com/bokeh/bokeh" } | ||
| # FIXME can't override distributed's conda dependencies with pip dependencies | ||
| # partd = { git = "https://github.com/dask/partd" } | ||
| # zict = { git = "https://github.com/dask/zict" } |
There was a problem hiding this comment.
This environment is brand new in CI. It already found genuine failures.
| test = "pytest" | ||
| coverage = "coverage" | ||
| coverage-clean = "rm -f .coverage* pytest.xml" | ||
| test-ci = "pytest --cov=distributed --cov-report=xml --junit-xml=pytest.xml --runslow --leaks=fds,processes,threads" |
There was a problem hiding this comment.
Unlike dask/dask, this does not use pytest-xdist. Something to work on in a follow-up.
| # Free-threading (WIP - tests don't pass yet) | ||
| # - os: ubuntu-latest | ||
| # environment: py314t | ||
| # task: test-ci | ||
| # partition: ci1 | ||
| # - os: ubuntu-latest | ||
| # environment: py314t | ||
| # task: test-ci | ||
| # partition: not ci1 |
|
@dask/maintenance this is ready to go |
|
The two failures in the nightly environment are genuine. They were undetected before.
|
Follow-up to dask/dask#12389
Functional changes
The Tests workflow is still triggered on schedule in order to detect test flakiness, but is no longer affected by upstream changes.
Added Upstream workflow, which features two runs:
Upstream / py314differs fromTests / py314as Tests uses the lockfile, meaning dependency versions don't change on their own, whereas Upstream throws out the lockfile, getting all latest and greatest packages as soon as they are released. In other words,Upstream / py314replicates the behaviour of the oldTestsworkflow.Repaired the
Conda buildworkflow, which has been broken for some time. NowConda buildruns on all PRs (takes under 5 minutes).Run tests on Linux ARM
Tweaked the triggers of some CI jobs for sanity
Follow-ups
pixi.tomltodask/partdanddask/zict(short of a full migration to pixi) and reintroduce their git tips to thenightlyenvironment. This is low priority as these packages barely see any movement nowadays.Known issues
pixi.lockchanges. For clarity, this is an issue shared by all package managers for all languages which use a lock file.